Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

301
Visualizações
¿Por qué tengo el error `inyección "tienda" no encontrada` cuando intento `this.store.commit()`?

Estoy tratando de almacenar valores usando VueX. Estoy usando Vuex 4.0 no el 3.0.

Así que estoy tratando de comprometer un valor como este, como estaba acostumbrado en Vuex 3:

 ... this.$store.commit("changerusername", u) ...

Así que probé esto:

Dentro de mi main.js tengo esto:

 import { createApp } from "vue"; import { store } from "./store"; import App from "./App.vue"; const app = createApp(App); app.use(store); app.mount("#app");

Dentro de mi store/store.js , tengo esto:

 import vue from "vue"; import { createStore } from "vuex"; export const store = createStore({ state: { username: null, token: null, }, getters: { getUsername: function (state) { return `${state.username}`; }, }, mutation: { changeusername: function (state, newusername) { state.username = newusername; } }, });

App.vue tiene esto:

 <template> <router-view /> </template> <script> import { defineComponent } from "vue"; export default defineComponent({ name: "app", }); </script>

Ok ahora, dentro del archivo donde quiero hacer mi compromiso, escribí esto:

Importaciones:

 import { useQuasar } from "quasar"; import { defineComponent } from "vue"; import { ref } from "vue"; import axios from "axios"; import { useStore } from "vuex";

La puesta en marcha :

 setup() { const store = useStore(); return { store, }; },

Y lo uso así:

 loginArrow: function (u, p) { this.store.commit("changeusername", u); },

Pero cuando hago esto, aparece este error: injection "store" not found. .

¿Que estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Si está utilizando la API de composición, puede cambiar su función loginArrow a algo como esto porque la palabra clave this no funciona en la API de composición:

 const loginArrow = (u, p) => { store.commit("changeusername", u); }

También puede intentar usar store.value.commit(...) en lugar de store.commit(...)

about 4 years ago · Juan Pablo Isaza Relatório

0

Encontré la razón por la que eso no funcionaba. no estaba en la función sino en el quasar directamente.

En la carpeta app/.quasar hay 4 archivos app.js, client-entry.js, client-prefetch.js y quasar-user-options.js.

Normalmente se configura automáticamente, pero no sé por qué quasar no lo hizo, así que lo hice manualmente comparándolo con otro proyecto.

Gracias por la ayuda !

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda